--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
lang/README.ja.md v4.5.0-rc.1 (62ba0631) Text, 14.54 KB
Reticulum MeshChatX
Liam Cottle 氏による Reticulum MeshChat を大幅に改修・機能拡張したフォークです。
本プロジェクトはオリジナルの Reticulum MeshChat とは独立しており、提携関係にありません。
• ウェブサイト: meshchatx.com
• ソースコード: git.quad4.io/RNS-Things/MeshChatX
• 公式ミラー: github.com/Quad4/MeshChatX — 現時点では Windows / macOS ビルドにも使用。
• 変更履歴: CHANGELOG.md
• TODO: Boards
Reticulum MeshChat からの主な変更
• LXST を使用
• Peewee ORM を生 SQL に置き換え
• Axios をネイティブ T383838fetch に置き換え
• 最新の Electron
• Web サーバーと同梱フロントエンドを含む T383838.whl によりデプロイの選択肢を拡張
• i18n
• 依存関係管理に PNPM と Poetry
│ [!WARNING] MeshChatX は旧バージョンの Reticulum MeshChat
│ とのデータ互換性を保証しません。マイグレーションやテスト前にデータをバックアップしてください。
│ [!WARNING] レガシーシステムはまだ完全にはサポートされていません。現在の最低要件: Python
│ T383838>=3.11、Node T383838>=22(Electron は Node 22、CI はそれ以上でも可)。
必要条件
• Python T383838>=3.11(T383838pyproject.toml より)
• Node.js T383838>=22(T383838package.json より)
• pnpm T38383810.32.1(T383838package.json より)
• Poetry(T383838Taskfile.yml および CI ワークフローで使用)
T282828
task install
task lint:all
task test:all
task build:all
インストール方法
環境とパッケージ形式に合わせて選んでください。
┌──────────────────────────┬────────────────────┬───────────────────────────────────────┬──────────┐
│ 方法 │ フロントエンド含む │ アーキテクチャ │ 最適な… │
├──────────────────────────┼────────────────────┼───────────────────────────────────────┼──────────┤
│ Docker イメージ │ はい │ T383838linux/amd64, T383838linux/arm64 │ Linux … │
│ Python wheel (T383838.whl) │ はい │ Python がサポートする全アーキテクチャ │ Node ビ… │
│ Linux AppImage │ はい │ T383838x64, T383838arm64 │ ポータ… │
│ Debian パッケージ (T383838.deb) │ はい │ T383838x64, T383838arm64 │ Debian/… │
│ RPM パッケージ (T383838.rpm) │ はい │ CI 依存 │ Fedora/… │
│ ソースから │ ローカルビルド │ ホストアーキテクチャ │ 開発・… │
└──────────────────────────┴────────────────────┴───────────────────────────────────────┴──────────┘
備考:
• リリースワークフローは Linux T383838x64 および T383838arm64 の AppImage + DEB を明示的にビルドします。
• RPM も試行され、成功時にアップロードされます。
クイックスタート: Docker
T282828
docker compose up -d
デフォルトの compose ファイル:
• ホスト T383838127.0.0.1:8000 -> コンテナポート T3838388000
• T383838./meshchat-config -> T383838/config(永続化)
権限エラーが発生した場合:
T282828
sudo chown -R T79c0ff1000:1000 ./meshchat-config
リリースアーティファクトからのインストール
1) Linux AppImage (x64/arm64)
1. リリースから T383838ReticulumMeshChatX-v<バージョン>-linux-<アーキテクチャ>.AppImage をダウンロード。
2. 実行権限を付与して起動:
T282828
chmod +x ./ReticulumMeshChatX-v*-linux-*.AppImage
./ReticulumMeshChatX-v*-linux-*.AppImage
2) Debian/Ubuntu T383838.deb (x64/arm64)
1. T383838ReticulumMeshChatX-v<バージョン>-linux-<アーキテクチャ>.deb をダウンロード。
2. インストール:
T282828
sudo apt install ./ReticulumMeshChatX-v*-linux-*.deb
3) RPM ベースのシステム
1. リリースに T383838ReticulumMeshChatX-v<バージョン>-linux-<アーキテクチャ>.rpm がある場合はダウンロード。
2. インストール:
T282828
sudo rpm -Uvh ./ReticulumMeshChatX-v*-linux-*.rpm
4) Python wheel (T383838.whl)
リリースの wheel にはビルド済みの Web アセットが含まれます。
T282828
pip install ./reticulum_meshchatx-*-py3-none-any.whl
meshchatx --headless
T383838pipx もサポート:
T282828
pipx install ./reticulum_meshchatx-*-py3-none-any.whl
ソースからの実行(Web サーバーモード)
開発時やローカルのカスタムビルド向け。
T282828
git clone https://git.quad4.io/RNS-Things/MeshChatX.git
Tffa657cd MeshChatX
corepack Tffa657enable
pnpm install
pip install poetry
poetry install
pnpm run build-frontend
poetry run python -m meshchatx.meshchat --headless --host T79c0ff127.0.0.1
サンドボックスで実行(Linux)
ネイティブの T383838meshchatx(エイリアス: T383838meshchat)をファイルシステムをより隔離した状態で動かすには、Reticulum と Web UI 向けの通常のネットワークアクセスを保ちつつ Firejail または Bubblewrap(T383838bwrap)を使えます。詳しい例(pip/pipx、Poetry、USB シリアルの注意)は次を参照:
同梱または同期された T383838meshchatx-docs から配信される場合、アプリ内の ドキュメント(MeshChatX ドキュメント)一覧にも同じページが表示されます。
Linux デスクトップ: 絵文字フォント
絵文字ピッカーはシステムフォント(Electron/Chromium)で標準 Unicode 絵文字を描画します。絵文字が空の四角(「豆腐」)になる場合はカラー絵文字パッケージをインストールし、アプリを再起動してください。
┌──────────────────────────────┬───────────────────────────────────────────────────────────────────┐
│ ディストリビューション(例) │ パッケージ │
├──────────────────────────────┼───────────────────────────────────────────────────────────────────┤
│ Arch Linux, Artix, Manjaro │ T383838noto-fonts-emoji(T383838sudo pacman -S noto-fonts-emoji) │
│ Debian, Ubuntu │ T383838fonts-noto-color-emoji(T383838sudo apt install fonts-noto-color-emoji) │
│ Fedora │ T383838google-noto-emoji-color-fonts │
└──────────────────────────────┴───────────────────────────────────────────────────────────────────┘
インストール後も表示されない場合は T383838fc-cache -fv を実行してください。最小インストールでは記号の網羅用に T383838noto-fonts も任意で入れてください。
ソースからのデスクトップパッケージビルド
スクリプトは T383838package.json と T383838Taskfile.yml に定義されています。
Linux x64 AppImage + DEB
T282828
pnpm run dist:linux-x64
Linux arm64 AppImage + DEB
T282828
pnpm run dist:linux-arm64
RPM
T282828
pnpm run dist:rpm
Task 経由:
T282828
task dist:fe:rpm
アーキテクチャサポート
• Docker イメージ: T383838amd64, T383838arm64
• Linux AppImage: T383838x64, T383838arm64
• Linux DEB: T383838x64, T383838arm64
• Windows: T383838x64, T383838arm64(ビルドスクリプトあり)
• macOS: ローカルビルド向けにビルドスクリプトあり(T383838arm64, T383838universal)
• Android: ネイティブ APK — ABI T383838arm64-v8a、T383838x86_64、および universal
Android
MeshChatX はネイティブ Android APK のビルドに対応しています(Termux のみに限りません)。
ソースから APK をビルド
リポジトリのルートで:
T282828
T8b949e# 1) android/app/build.gradle で使う Chaquopy 用ホイールをビルド
bash scripts/build-android-wheels-local.sh
T8b949e# 2) 両方の APK バリアントをビルド
Tffa657cd android
./gradlew --no-daemon :app:assembleDebug :app:assembleRelease
APK の出力(ABI 分割と universal APK。T383838android/app/build.gradle の T383838splits { abi { ... } } を参照):
デバッグ(T383838android/app/build/outputs/apk/debug/):
• T383838app-arm64-v8a-debug.apk(ARM64 端末)
• T383838app-x86_64-debug.apk(x86_64 エミュレータ)
• T383838app-universal-debug.apk(同梱 ABI を 1 パッケージに)
リリース(T383838android/app/build/outputs/apk/release/):
• T383838app-arm64-v8a-release-unsigned.apk
• T383838app-x86_64-release-unsigned.apk
• T383838app-universal-release-unsigned.apk
備考:
• リリース出力は署名を設定しない限りデフォルトで未署名です。
• どちらか一方でよい場合は T383838:app:assembleDebug または T383838:app:assembleRelease。
• Android の対象 ABI は T383838android/app/build.gradle で設定されている T383838arm64-v8a と T383838x86_64 です。
追加ドキュメント:
設定
┌────────────────────────┬──────────────────────────────────────┬────────────┬─────────────────────┐
│ 引数 │ 環境変数 │ デフォルト │ 説明 │
├────────────────────────┼──────────────────────────────────────┼────────────┼─────────────────────┤
│ T383838--host │ T383838MESHCHAT_HOST │ T383838127.0.0.1 │ Web サーバーのバイ… │
│ T383838--port │ T383838MESHCHAT_PORT │ T3838388000 │ Web サーバーポート │
│ T383838--no-https │ T383838MESHCHAT_NO_HTTPS │ T383838false │ HTTPS を無効化 │
│ T383838--ssl-cert / T383838--ssl-key │ T383838MESHCHAT_SSL_CERT / T383838MESHCHAT_SSL_KEY │ (なし) │ PEM 証明書と鍵のパ… │
│ T383838--rns-log-level │ T383838MESHCHAT_RNS_LOG_LEVEL │ (なし) │ Reticulum(RNS)の… │
│ T383838--headless │ T383838MESHCHAT_HEADLESS │ T383838false │ ブラウザを自動で開… │
│ T383838--auth │ T383838MESHCHAT_AUTH │ T383838false │ 基本認証を有効化 │
│ T383838--storage-dir │ T383838MESHCHAT_STORAGE_DIR │ T383838./storage │ データディレクトリ │
│ T383838--public-dir │ T383838MESHCHAT_PUBLIC_DIR │ 自動/同梱 │ フロントエンドファ… │
└────────────────────────┴──────────────────────────────────────┴────────────┴─────────────────────┘
ブランチ
┌──────────┬────────────────────────────────────────────────────────────┐
│ ブランチ │ 目的 │
├──────────┼────────────────────────────────────────────────────────────┤
│ T383838master │ 安定版リリース。本番向けのコードのみ。 │
│ T383838dev │ 活発な開発。不安定または不完全な変更を含む場合があります。 │
└──────────┴────────────────────────────────────────────────────────────┘
開発
T383838Taskfile.yml のよく使うタスク:
T282828
task install
task lint:all
task test:all
task build:all
T383838Makefile のショートカット:
┌──────────────┬─────────────────────────────────────────┐
│ コマンド │ 説明 │
├──────────────┼─────────────────────────────────────────┤
│ T383838make install │ pnpm と poetry の依存関係をインストール │
│ T383838make run │ poetry 経由で MeshChatX を実行 │
│ T383838make build │ フロントエンドをビルド │
│ T383838make lint │ eslint と ruff を実行 │
│ T383838make test │ フロントエンドとバックエンドのテスト │
│ T383838make clean │ ビルド成果物と node_modules を削除 │
└──────────────┴─────────────────────────────────────────┘
バージョン管理
このリポジトリの現在のバージョンは T3838384.5.0 です。
• JavaScript / Electron のバージョンソースは T383838package.json。
• T383838meshchatx/src/version.py は次で T383838package.json と同期します:
T282828
pnpm run version:sync
リリースの一貫性のため、必要に応じて (T383838package.json、T383838pyproject.toml、T383838meshchatx/__init__.py) のバージョンを揃えてください。
セキュリティ
言語の追加
ロケールは自動検出されます。新しい言語には JSON ファイル 1 つで足ります:
1. T383838en.json から空のテンプレートを生成:
T282828
python scripts/generate_locale_template.py
全キーを空文字にした T383838locales.json が書き出されます。
2. 名前を変更してロケールディレクトリへ移動:
T282828
mv locales.json meshchatx/src/frontend/locales/xx.json
3. ファイル先頭の T383838_languageName にその言語の母語名を設定(例: T383838"Espanol", T383838"Francais")。言語選択に表示されます。
4. 残りの値をすべて翻訳。
5. キーの整合性を確認: T383838pnpm test -- tests/frontend/i18n.test.js --run
他のコード変更は不要です。アプリ・言語選択・テストはビルド時に T383838meshchatx/src/frontend/locales/ からロケールを読み込みます。
クレジット
• Liam Cottle - オリジナル Reticulum MeshChat
• RFnexus - Micron パーサー(JavaScript)
• markqvist - Reticulum, LXMF, LXST
ライセンス
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────